/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fisica;

import hibernate.Sesion;
import hibernate.objeto.Paciente;
import hibernate.objeto.Tutor;
import java.util.Vector;
import org.hibernate.Query;

/**
 *
 * @author Gonzalo
 */
public class TutorFisica extends CapaFisica {

    /**
     * Retorna el vector de objetos Paciente de los cuales la persona es tutor
     * según el id de la persona del tutor.
     *
     * @param idPersona El id de la persona que es Tutorde los pacientes
     * @return El vector de objetos Paciente que tienen como tutor a la persona
     * consultada, null si no existe
     */
    public static Vector<Paciente> getVectorPacientePorIdPersonaDelTutor(
            int idPersona) {
        Query q = Sesion.sesion.createQuery(
                "select t.pacientes " +
                "from Tutor t " +
                "where t.persona.idPersona = " + idPersona
                );

        return getVectorObjetos(q);
    }

    /**
     * Retorna el objeto Tutor según el id.
     *
     * @param idTutor El id del tutor
     * @return El objeto Tutor consultado, null si no existe
     */
    public static Tutor getTutorPorId(int idTutor) {
        Query q = Sesion.sesion.createQuery(
                "from Tutor " +
                "where idTutor = " + idTutor
                );

        return (Tutor) getObjeto(q);
    }

    /**
     * Retorna el objeto Tutor según el id de la persona asociada.
     *
     * @param idPersona El id de la persona asociada
     * @return El objeto Tutor consultado, null si no existe
     */
    public static Tutor getTutorPorIdPersona(int idPersona) {
        Query q = Sesion.sesion.createQuery(
                "select t " +
                "from Tutor as t " +
                "where t.persona.idPersona = " + idPersona
                );
        
        return (Tutor) getObjeto(q);
    }
}
